home *** CD-ROM | disk | FTP | other *** search
- Index: man/man5/smail.an
- Prereq: 1.37
- *** orig/man/man5/smail.an Sun Sep 20 23:58:50 1992
- --- test/man/man5/smail.an Tue Jun 1 16:46:14 1993
- ***************
- *** 348,353 ****
- --- 348,360 ----
- likely by set to \fBsendmail\fP or \fBsmail\fP, depending upon the
- program that typically is invoked for receiving mail.
- .TP .8i
- + .B tap_ident_sender
- + The identification code of the user that sent the mail over its
- + last hop as determined by the TAP protocol. This will generally
- + only be set for mail received by SMTP. It is most useful for putting
- + into the \fBReceived:\fP header. Only available if \fBHAVE_TAP\fP
- + was defined when building.
- + .TP .8i
- .B uucp_name
- the UUCP-network name for the local host.
- .TP .8i
- ***************
- *** 1131,1136 ****
- --- 1138,1149 ----
- attribute for more information.
- .DD spool_mode number 0440
- This defines the file creation mode for spool files.
- + .DD tap_query_timeout number -1
- + This defines the timeout for TAP identity queries on
- + incoming SMTP connections. Values of zero or less
- + mean that no tap query is made (so queries are initially
- + disabled). This is only available if TAP support is
- + compiled into your copy of smail.
- .DD transport_file string "``transports''"
- names the file containing the transport configuration
- information. If this does not begin with ``/'', it will be referenced
- Index: man/man8/smail.an
- Prereq: 1.8
- *** orig/man/man8/smail.an Sun Aug 2 11:27:21 1992
- --- test/man/man8/smail.an Tue Jun 1 16:46:15 1993
- ***************
- *** 534,539 ****
- --- 534,546 ----
- Specify the protocol that was used by the sending host to deliver the
- mail message. This value can be included in expansion strings through
- the variable \fB$sender_proto\fP.
- + .TP
- + \fB\-oMu\fP \fItap_ident_sender\fP
- + Specify the user that intitiated the message transfer on the previous
- + host to get to this host. This value is set by the SMTP receiver when
- + a message is received from a host supporting the \fBTAP\fP protocol.
- + This value can be included in expansion strings through
- + the variable \fB$tap_ident_sender\fP.
- .SH NORMAL USAGE
- Under normal usage,
- one smail daemon exists which receives requests from
- Index: src/config.c
- Prereq: 1.15
- *** orig/src/config.c Wed Sep 16 17:10:21 1992
- --- test/src/config.c Wed Jun 2 12:43:05 1993
- ***************
- *** 103,105 ****
- --- 103,106 ----
- int tzoffset = 0; /* glotznet host timezone offset */
- int tznodst = 0; /* glotznet does not have DST */
- #endif /* GLOTZNET */
- + int tap_query_timeout = -1; /* Timeout on TAP queries - initially disabled */
- Index: src/expand.c
- Prereq: 1.10
- *** orig/src/expand.c Sun Sep 20 20:54:50 1992
- --- test/src/expand.c Wed Jun 2 12:43:03 1993
- ***************
- *** 1104,1109 ****
- --- 1104,1112 ----
- if (MATCH("sender_proto")) {
- return sender_proto;
- }
- + if (MATCH("tap_ident_sender")) {
- + return tap_ident_sender;
- + }
- if (MATCH("program")) {
- return program;
- }
- Index: src/extern.h
- Prereq: 1.34
- *** orig/src/extern.h Mon Sep 21 02:44:04 1992
- --- test/src/extern.h Wed Jun 2 12:43:00 1993
- ***************
- *** 97,102 ****
- --- 97,103 ----
- extern int tzoffset; /* timezone offset for glotznet host */
- extern int tznodst; /* true if no DST for glotznet host */
- #endif /* GLOTZNET */
- + extern int tap_query_timeout; /* Timeout on TAP queries */
-
- /* external variables defined in default.c */
- extern struct director *directors; /* configured directors */
- ***************
- *** 219,224 ****
- --- 220,228 ----
-
- /* external variables defined in route.c */
- extern int cached_routers; /* TRUE if cache_routers() called */
- +
- + /* external variables defined in smtprecv.c */
- + extern char * tap_ident_sender; /* The calculated identity of the sender */
-
-
- /*
- Index: src/main.c
- Prereq: 1.24
- *** orig/src/main.c Sun Sep 20 20:54:55 1992
- --- test/src/main.c Wed Jun 2 12:42:57 1993
- ***************
- *** 1085,1090 ****
- --- 1085,1098 ----
- sender_proto = arg;
- break;
-
- + case 'u':
- + if (*arg == '\0') {
- + arg = *args++;
- + panic_if_null(arg, "oMu");
- + }
- + tap_ident_sender = arg;
- + break;
- +
- case 'P':
- if (*arg == '\0') {
- arg = *args++;
- Index: src/queue.c
- Prereq: 1.22
- *** orig/src/queue.c Sun Sep 20 20:55:05 1992
- --- test/src/queue.c Wed Jun 2 12:42:54 1993
- ***************
- *** 283,288 ****
- --- 283,299 ----
- }
-
- /*
- + * write the ident of the sending person if known
- + */
- + if (tap_ident_sender) {
- + if (put_line("-oMu") == FAIL ||
- + put_line(tap_ident_sender) == FAIL)
- + {
- + return FAIL;
- + }
- + }
- +
- + /*
- * write out the invoked program, too
- */
- if (put_line("-oMP") == FAIL ||
- ***************
- *** 1157,1163 ****
- *p = '\0';
- }
-
- ! write_log(LOG_SYS, "received%s%s%s%s%s%s%s%s%s%s%s%ld%s",
- "\n|\t from: ", sender,
- host_string?
- "\n|\t host: ": "", host_string? host_string: "",
- --- 1168,1174 ----
- *p = '\0';
- }
-
- ! write_log(LOG_SYS, "received%s%s%s%s%s%s%s%s%s%s%s%ld%s%s%s",
- "\n|\t from: ", sender,
- host_string?
- "\n|\t host: ": "", host_string? host_string: "",
- ***************
- *** 1166,1172 ****
- "\n|\t program: ", program,
- trim_old_id?
- "\n|\t orig-id: ": "", trim_old_id? trim_old_id: "",
- ! "\n|\t size: ", msg_size, " bytes");
-
- if (host_string) {
- xfree(host_string);
- --- 1177,1185 ----
- "\n|\t program: ", program,
- trim_old_id?
- "\n|\t orig-id: ": "", trim_old_id? trim_old_id: "",
- ! "\n|\t size: ", msg_size, " bytes",
- ! tap_ident_sender?
- ! "\n|\t tap_id: ": "", tap_ident_sender? tap_ident_sender: "");
-
- if (host_string) {
- xfree(host_string);
- Index: src/smailconf.c
- Prereq: 1.15
- *** orig/src/smailconf.c Wed Sep 16 17:10:37 1992
- --- test/src/smailconf.c Wed Jun 2 12:42:51 1993
- ***************
- *** 135,140 ****
- --- 135,141 ----
- { "spool_mode", t_int, NULL, (tup *)&spool_mode, 0 },
- { "switch_percent_and_bang", t_boolean, NULL,
- (tup *)&switch_percent_and_bang, 0 },
- + { "tap_query_timeout", t_int, NULL, (tup *)&tap_query_timeout, 0 },
- { "transport_file", t_string, NULL, (tup *)&transport_file, 0 },
- { "trusted", t_string, NULL, (tup *)&trusted, 0 },
- { "trusted_users", t_string, NULL, (tup *)&trusted, 0 },
- Index: src/smtprecv.c
- Prereq: 1.16
- *** orig/src/smtprecv.c Sun Sep 6 09:33:49 1992
- --- test/src/smtprecv.c Wed Jun 2 12:42:47 1993
- ***************
- *** 28,36 ****
- --- 28,47 ----
- # include "exitcodes.h"
- #endif
-
- + #ifdef HAVE_TAP
- + /* Include the declarations for TAP lookups */
- + #include <authuser.h>
- + #endif /* HAVE_TAP */
- +
- /* library functions */
- extern long time();
-
- + /* Declare the TAP variables - even if HAVE_TAP is not defined, so that configs
- + * can be kept consistant
- + */
- + char * tap_ident_sender = NULL; /* The calculated identity of the sender */
- +
- +
- /* types local to this file */
- enum e_smtp_commands {
- HELO_CMD, /* HELO domain */
- ***************
- *** 159,164 ****
- --- 170,200 ----
- putc('\n', out);
- fflush(out);
- }
- +
- + #ifdef HAVE_TAP
- + /*
- + * This code does a TAP/Ident/RFC1413 lookup on the connecting user (if possible)
- + * Its here because this may cause a delay and it seems better to have the
- + * delay once the connection is established rather than at the start
- + */
- + if (tap_query_timeout > 0) { /* switch off TAP by setting timeout <= 0 */
- + unsigned long inlocal;
- + unsigned long inremote;
- + unsigned short local;
- + unsigned short remote;
- +
- + if (auth_fd2(fileno(in), &inlocal, &inremote, &local, &remote) == EOF) {
- + /*
- + * You may want some error reporting here - however that
- + * may not be appropriate
- + */
- + tap_ident_sender = NULL; /* Make sure ident is not set */
- + } else {
- + tap_ident_sender = auth_tcpuser3(inlocal, inremote, local,
- + remote, tap_query_timeout);
- + }
- + }
- + #endif /* HAVE_TAP */
-
- while (! term_signal || out == NULL) {
- if (out) {
-